package com.shine.chemicalWholeProcessSystem.http;

import com.shine.chemicalWholeProcessSystem.app.ScoreQueryBean;
import com.shine.chemicalWholeProcessSystem.bean.DictionariesBean;
import com.shine.chemicalWholeProcessSystem.bean.LoginBean;
import com.shine.chemicalWholeProcessSystem.bean.RiskManagementBean;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;
import retrofit2.http.Url;

/**
 * Created by Administrator on 2018/10/11.
 */

public interface Service {
    /**
     * 查询风险点管理表中所有数据
     */
    @GET("shh/api/mhs/GetDangerousPoint")
    Observable<ECHttpResponse<List<RiskManagementBean>>> GetDangerousPoint(
    );

    /**
     * 新增、修改一风险点管理
     */
    @FormUrlEncoded
    @POST("shh/api/mhs/PostSaveDangerousPoint")
    Observable<ECHttpResponse<BaseReturn>> PostSaveDangerousPoint(
            @Field("data") String data
    );

    /**
     * 风险点管理删除一条数据
     */
    @FormUrlEncoded
    @POST("shh/api/mhs/DelDangerousPoint")
    Observable<ECHttpResponse<BaseReturn>> DelDangerousPoint(
            @Field("data") String data
    );

    /**
     * 登录接口
     */
    @FormUrlEncoded
    @POST("learun/adms/user/login")
    Observable<ECHttpResponse<LoginBean>> login(
            @Field("data") String data,
            @Field("loginMark") String loginMark
    );

    /**
     * 获取字典表
     */
    @GET("learun/adms/dataitem/details")
    Observable<ECHttpResponse<List<DictionariesBean>>> details(
            @Query("data") String data,
            @Query("token") String token,
            @Query("loginMark") String loginMark
    );

    /**
     * 获取成绩
     */
    @FormUrlEncoded
    @POST("student/byCard")
    Observable<ECHttpResponse<ScoreQueryBean>> getScoreQuery(
            @Field("card") String card
    );




    /**
     * 领金币、赚钱吧产品UV
     */
    @GET("uv/outlinks")
    Observable<ECHttpResponse<BaseReturn>> outlinks(
            @Query("ip") String ip,
            @Query("key") String key,
            @Query("linksId") Integer linksId,
            @Query("userid") String userid
    );


    //上传文件
//    @Headers({"Domain-Name: douban"}) // 加上 Domain-Name header
//    @Headers({"multipartFile:file"})
    @POST("common/upload")
    Observable<ECHttpResponse<FileBean>> upLoad(
//            @Field("uid") String uid,
//            @Field("token") String token,
//            @Field("ext") String ext,
//            @Part("file") RequestBody file
            @Body RequestBody Body
    );

    /**
     * 上传文件
     *
     * @param description
     * @param file
     */
    @POST("files/files")
    @Multipart
    Observable<ECHttpResponse<FileBean>> uploadFile(
            @Part("description") RequestBody description,
            @Part MultipartBody.Part file
    );

    @GET
    Observable<ECHttpResponse<BaseReturn>> getTimestamp(@Url String url);


    /**
     * login/loginpassword
     * 登录接口
     */
    @FormUrlEncoded
    @POST("login/loginpassword")
    Observable<ECHttpResponse<LoginBean>> loginpassword(
            @Field("appPlatform") String appPlatform,
            @Field("channel") String channel,
            @Field("inviteId") Integer inviteId,
            @Field("isApp") Integer isApp,
            @Field("mobile") String mobile,
            @Field("password") String password,
            @Field("model") String model,
            @Field("auto") Integer auto
    );


    /**
     * login/sendSms
     * 发送短信
     */
    @GET("login/sendSms")
    Observable<ECHttpResponse<BaseReturn>> sendSms(
            @Query("mobile") String mobile
    );


    //RequestBody body = RequestBody.create(RetrofitClient.JSON, new Gson().toJson(userEdit));
    @POST("user/edit")
    Observable<ECHttpResponse<BaseReturn>> userEdit(
            @Body RequestBody Body
    );
}
